-module(zadanie).

-export([akcja/1]).
-export([utworz/1]).

utworz(NazwaZadania) ->
  Pid = spawn(fun() -> akcja(NazwaZadania) end),
  koordynator:dodajZadanie(Pid,NazwaZadania), Pid.

akcja(NazwaZadania) ->
  receive
    { policz, NazwaZlecajacego, ArgumentZadania } ->
	 erlang:display([NazwaZadania,"Otrzymalem zlecenie wykonania zadania od: ",NazwaZlecajacego," argument: ",ArgumentZadania]),
	 erlang:display([NazwaZadania,"Wykonuje bardzo trudne zadanie..."]),
	 Funkcja = fun(X) -> X * X end,
	 Wartosc = Funkcja(ArgumentZadania),
	 erlang:display([NazwaZadania,"Zakonczylem wykonywanie zadania. zwracam wynik = ",Wartosc]),
	 koordynator ! {wynik, NazwaZadania, Wartosc },
     akcja(NazwaZadania)
  end.